home *** CD-ROM | disk | FTP | other *** search
- /* File "netstack.h", Light Sockets - Copyright (C) Matt Slot, 1996 */
- /* Implementation wrappers for "Light Sockets" network abstraction library. */
-
- #ifndef __NET_STACK_HEADER__
- #define __NET_STACK_HEADER__
-
- #ifndef __STD_TYPES_HEADER__
- #include "stdtypes.h"
- #endif /* __STD_TYPES_HEADER__ */
-
- #ifndef __SOCKET_HEADER__
- #include "socket.h"
- #endif /* __SOCKET_HEADER__ */
-
- #ifndef __DATAGRAM_HEADER__
- #include "datagram.h"
- #endif /* __DATAGRAM_HEADER__ */
-
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* Preprocessor Defines */
-
-
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* Enum/Structure/Class Definitions */
-
- typedef class NetworkStack {
-
- public:
- virtual ~NetworkStack (void);
-
-
- /* Network stack dispatch */
- virtual SocketResult DoLoad (void);
- virtual SocketResult DoUnload (void);
-
-
- /* Socket-based dispatch */
- virtual SocketResult DoCreate (void);
- virtual SocketResult DoTickle (void);
- virtual SocketResult DoDispose (void);
-
- virtual SocketResult DoBind (SocketAddressPtr reqAddress,
- SocketAddressPtr retAddress);
- virtual SocketResult DoUnbind (void);
-
-
- /* Name service dispatch */
- virtual SocketResult DoAddressResolve(Char8 *textAddress,
- SocketAddressPtr socketAddress);
- virtual SocketResult DoAddressLookup (SocketAddressPtr socketAddress,
- Char8 *textAddress);
-
- /* Datagram-based dispatch */
- virtual SocketResult DoDatagramWrite (Byte8 *dataPtr, UInt32 dataLen,
- SocketAddressPtr address);
-
- /* Stream-based dispatch */
- virtual SocketResult DoStreamServer (UInt32 sessions);
- virtual SocketResult DoStreamClient (SocketAddressPtr address);
- virtual SocketResult DoStreamWrite (Byte8 *dataPtr, UInt32 dataLen);
- virtual SocketResult DoStreamClose (Bool8 orderly);
-
-
- protected:
-
- /* Protected constructor - Base class can't be instantiated */
- NetworkStack (SocketRef socket);
-
-
- /* Datagram-based callback */
- SocketResult DatagramRead (Byte8 *dataPtr, UInt32 dataLen,
- SocketAddressPtr address);
-
- /* Stream-based callback */
- SocketResult StreamAccept (SocketRef *newSocket,
- SocketAddressPtr address);
- SocketResult StreamRead (Byte8 *dataPtr, UInt32 dataLen);
- SocketResult StreamClosing (Bool8 orderly);
-
-
- /* Protected data */
- SocketRef socket;
-
- } NetworkStack, *NetworkStackRef;
-
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* Function Prototypes */
-
-
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
- /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
-
- #endif /* __NET_STACK_HEADER__ */
-
-